﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Telerik.WinControls;
using Negocio;
using Negocio.Interface;
using Metadados;

namespace Interface
{
    public partial class TECadastroProduto : Telerik.WinControls.UI.RadForm, ITCadastroProduto
    {
        #region Metodos definition

        #region Variaveis definition
        private NGProduto controlador;
        #endregion

       #region Propriedades definition
       public int proCodigo
        {
            set
            {
                if ((value.ToString()) == (int.MinValue.ToString()))
                {
                    txbCodigo.Text = string.Empty;
                    txbCodigo.Focus();
                }
                else
                    txbCodigo.Text = value.ToString();
            }
            get
            {
                if (txbCodigo.Text == string.Empty)
                    return int.MinValue;
                else
                    return int.Parse(txbCodigo.Text);
            }
        }

        public string proDescricao
        {
            set { txbDescricao.Text = value; }
            get { return txbDescricao.Text; }
        }

        public string proCodigoBarra
        {
            set { txbCodigoBarra.Text = value; }
            get { return txbCodigoBarra.Text; }
        }

        public string proNcm
        {
            set { txbNcm.Text = value; }
            get { return txbNcm.Text; }
        }

        public int undCodigo
        {
            set
            {
                if ((value.ToString()) == (int.MinValue.ToString()))
                    cmbUnidade.SelectedIndex = -1;
                else
                    cmbUnidade.SelectedValue = value;
            }
            get
            {
                if (cmbUnidade.Text == string.Empty)
                    return int.MinValue;
                else
                    return Convert.ToInt32(cmbUnidade.SelectedValue);
            }
        }

        public string mensagem
        {
            set { Telerik.WinControls.RadMessageBox.Show(value, "  CotFácil  ", MessageBoxButtons.OK, RadMessageIcon.Info, MessageBoxDefaultButton.Button1); }
            get { return string.Empty; }
        }

        public TECadastroProduto()
        {
            controlador = new NGProduto(this);
            InitializeComponent();
        }

       #endregion
       #endregion

        #region Eventos definition
        #region Click definition
        private void btnFechar_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnNovo_Click(object sender, EventArgs e)
        {
            controlador.limpaTela();
        }

        private void btnGravar_Click(object sender, EventArgs e)
        {
            controlador.gravar();
        }

        private void btnExcluir_Click(object sender, EventArgs e)
        {
            controlador.deletar(proCodigo);
        }

        private void btnPesquisar_Click(object sender, EventArgs e)
        {
            TEPesquisaProduto objProduto = new TEPesquisaProduto();

            objProduto.Text = "Pesquisa de Produtos";
            objProduto.ShowDialog(this);

            if (!((objProduto.codigoProduto) == 0))
            {
                controlador.consultar(objProduto.codigoProduto);
            }
            /*TEPesquisaProduto tela = new TEPesquisaProduto();
            tela.ShowDialog(); */
        }
        #endregion

        #region Load definition
        private void TECadastroProduto_Load(object sender, EventArgs e)
        {
            // esta funcao preenche o combobox com as descricoes das unidades
            NGUnidade ctrUnidade = new NGUnidade();
            List<Unidade> lstUnidade = new List<Unidade>();

            lstUnidade = ctrUnidade.consultar();
            cmbUnidade.DataSource = lstUnidade;
            cmbUnidade.DisplayMember = "undDescricao";
            cmbUnidade.ValueMember = "undCodigo";

            cmbUnidade.SelectedIndex = -1;

        }
        #endregion

        #region Validated definition
        private void txbCodigo_Validated(object sender, EventArgs e)
        {
            controlador.consultar(proCodigo);
        }
        #endregion

        #region KeyPress definition
        private void txbCodigo_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8)
            {
                e.Handled = true;
            }
        }

        private void txbNcm_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8)
            {
                e.Handled = true;
            }
        }
        #endregion

        #endregion
    }
}
